package MySQL;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestJDBCSelect {
    public static void main(String[] args) throws SQLException {
        //1、创建数据源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/student?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");

        //2、让代码和数据库服务建立连接  并且得到连接对象     (相当于到达菜鸟驿站)
        Connection connection = dataSource.getConnection();//在main方法开头加throws

        //3、拼装sql
        String sql = "select * from test";
        PreparedStatement statement = connection.prepareStatement(sql);

        //4、执行  SQL  (相当于扫码取件)
        //查询操作返回值不是int了  而是一个临时表
        //使用ResultSet 表示这个表
        ResultSet resultSet = statement.executeQuery();

        //5、遍历结果集和(返回值的临时表),先获取到每一行,在获取到这一行的若干列
        //   next 方法表示获取到一行记录,同时把光标往后移动一行
        //  如果遍历到表的结束位置 ,此处next直接返回false

        //+------+--------+
        //| id   | name   |
        //+------+--------+
        //|    2 | 赵六   |
        //+------+--------+
        while (resultSet.next()){
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            System.out.println("id = "+id+", name = "+name);
        }

        // 6、此时 SQL已经执行完毕,然后还需要释放资源,
        resultSet.close();
        statement.close();
        connection.close();
    }
}
